<?xml version="1.0" encoding="utf-8"?>
<!--
                                                                                     
 h       t     t                ::       /     /                     t             / 
 h       t     t                ::      //    //                     t            // 
 h     ttttt ttttt ppppp sssss         //    //  y   y       sssss ttttt         //  
 hhhh    t     t   p   p s            //    //   y   y       s       t          //   
 h  hh   t     t   ppppp sssss       //    //    yyyyy       sssss   t         //    
 h   h   t     t   p         s  ::   /     /         y  ..       s   t    ..   /     
 h   h   t     t   p     sssss  ::   /     /     yyyyy  ..   sssss   t    ..   /     
                                                                                     
	<https://y.st./>
	Copyright © 2017 Alex Yst <mailto:copyright@y.st>

	This program is free software: you can redistribute it and/or modify
	it under the terms of the GNU General Public License as published by
	the Free Software Foundation, either version 3 of the License, or
	(at your option) any later version.

	This program is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
	GNU General Public License for more details.

	You should have received a copy of the GNU General Public License
	along with this program. If not, see <https://www.gnu.org./licenses/>.
-->
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<base href="https://y.st./en/weblog/2017/08-August/30.xhtml" />
		<title>A broken system &lt;https://y.st./en/weblog/2017/08-August/30.xhtml&gt;</title>
		<link rel="icon" type="image/png" href="/link/CC_BY-SA_4.0/y.st./icon.png" />
		<link rel="stylesheet" type="text/css" href="/link/basic.css" />
		<link rel="stylesheet" type="text/css" href="/link/site-specific.css" />
		<script type="text/javascript" src="/script/javascript.js" />
		<meta name="viewport" content="width=device-width" />
	</head>
	<body>
		<nav>
			<p>
				<a href="/en/">Home</a> |
				<a href="/en/a/about.xhtml">About</a> |
				<a href="/en/a/contact.xhtml">Contact</a> |
				<a href="/a/canary.txt">Canary</a> |
				<a href="/en/URI_research/"><abbr title="Uniform Resource Identifier">URI</abbr> research</a> |
				<a href="/en/opinion/">Opinions</a> |
				<a href="/en/coursework/">Coursework</a> |
				<a href="/en/law/">Law</a> |
				<a href="/en/a/links.xhtml">Links</a> |
				<a href="/en/weblog/2017/08-August/30.xhtml.asc">{this page}.asc</a>
			</p>
			<hr/>
			<p>
				Weblog index:
				<a href="/en/weblog/"><abbr title="American Standard Code for Information Interchange">ASCII</abbr> calendars</a> |
				<a href="/en/weblog/index_ol_ascending.xhtml">Ascending list</a> |
				<a href="/en/weblog/index_ol_descending.xhtml">Descending list</a>
			</p>
			<hr/>
			<p>
				Jump to entry:
				<a href="/en/weblog/2015/03-March/07.xhtml">&lt;&lt;First</a>
				<a rel="prev" href="/en/weblog/2017/08-August/29.xhtml">&lt;Previous</a>
				<a rel="next" href="/en/weblog/2017/08-August/31.xhtml">Next&gt;</a>
				<a href="/en/weblog/latest.xhtml">Latest&gt;&gt;</a>
			</p>
			<hr/>
		</nav>
		<header>
			<h1>A broken system</h1>
			<p>Day 00907: Wednesday, 2017 August 30</p>
		</header>
<img src="/img/CC_BY-SA_4.0/y.st./weblog/2017/08/30.jpg" alt="Seed pods and purple flowers" class="weblog-header-image" width="800" height="480" />
<section id="general">
	<h2>General news</h2>
	<p>
		The day before yesterday, I waited too long to get my new bed set up.
		I think my bedroom is right above my downstairs neighbour&apos;s, and I didn&apos;t want to disturb them, so I waited until the next day.
		Yesterday, I set up the bed, but waited to put the sheets on it until after I washed them.
		Due to a surprise shift at work, I didn&apos;t get my laundry done until after midnight.
		Today, I&apos;ve found my sheets to be too big.
		I think this is a full-sized bed, while my sheets are queen-sized.
		I didn&apos;t think I&apos;d sleep well because this mattress is so firm, unlike my cushy queen-sized one.
		I think I slept well enough though.
		It&apos;s still going to take some getting used to, but I don&apos;t think I&apos;ll have any issues with the new bed.
	</p>
	<p>
		As I was getting ready for work today, I kind of wanted to be put on any station that didn&apos;t have a register.
		Some days, I prefer to work on a till, but other days, I just don&apos;t.
		As I headed to work though, I realised that with our new, computerised system in place, I <strong>*did*</strong> want to work on a register.
		The new system is a mess, and the people at the registers deal with the least-messy part of the system.
		The shift leader put me on the drive-through register, but then changed their mind.
		They didn&apos;t want someone with almost no experience with the new registers on the back till, so they moved me to the front till.
		I&apos;d thought that the registers weren&apos;t such a mess, but it turns out they are.
		I&apos;d still rather work with the registers than any other part of the new system though.
		It used to be that I dreaded being put on the dough-flattening station.
		It&apos;s the most boring station in the joint.
		Now though ... it&apos;s the only one that isn&apos;t computerised.
		Computerisation isn&apos;t necessarily a bad thing, but when your computer system is screwy, it makes everything difficult to work with.
		At the end of the night, the shift leader was having trouble with what looked like phantom pizzas in the system.
		They didn&apos;t seem to know what was going on, but my guess is that those phantom pizzas were the result of us having to work around the screwy system.
		We used the work-around method the shift leaders told us to, but the system wasn&apos;t designed for it, nor does it seem to have been designed to fit with the reality of the store.
	</p>
	<p>
		My <a href="/a/canary.txt">canary</a> still sings the tune of freedom and transparency.
	</p>
</section>
<section id="include.d">
	<h2><a href="https://git.volatile.ch./y.st./include.d/releases">include.d</a></h2>
	<p>
		The new type-hinting in <abbr title="PHP: Hypertext Preprocessor">PHP</abbr>7 should make keeping the documentation up-to-date easier.
		The main reason my documentation&apos;s out-of-date right now is because I changed the return values to provide better flexibility.
		With the return type (and parameter types) right there in the function/method signatures, I can easily compare the documentation to what the function/method is actually set up to accept and return and update accordingly.
		The return-type hinting is a bit more limited than I&apos;d like it to be though.
		A child class can&apos;t specify a return type that&apos;s a child of the parent&apos;s return type for a given method.
		The return type must instead exactly match.
		In direct children, this doesn&apos;t make a difference, but in grandchildren, it can allow the grandchild to return a supertype of its direct parent&apos;s return type, as long as the child&apos;s return type is the grandparent&apos;s return type or a subtype of that.
		Actually, come to think of it, the return type of the parent and the child could be mutually exclusive even.
		If the grandparent returns an object of type <code>a</code>, classes <code>b</code> and <code>c</code> could inherit from <code>a</code>.
		The parent class could return objects of type <code>b</code>, while the child class could return objects of type <code>c</code>.
	</p>
	<p>
		I forget why I was looking at the list of <abbr title="PHP: Hypertext Preprocessor">PHP</abbr> reserved words, but I noticed one that didn&apos;t seem to make sense: <code>enddeclare</code>.
		I checked the documentation for the <code>declare</code> syntax, but it doesn&apos;t even mention <code>enddeclare</code>.
		I experimented a bit, and skimmed the documentation repeatedly, until I finally figured it out.
		However ... the <code>enddeclare</code> syntax isn&apos;t compatible with <code>strict_types</code>, which is the only thing I use it for.
		The only other two things <code>declare</code> is currently good for are <code>ticks</code>, which I don&apos;t have a use for at the moment, and <code>encoding</code>, which can throw errors depending on your settings, with no way to check that particular setting from within the language.
		That makes <code>encoding</code> practically useless, as it can only be used in code that won&apos;t be distributed.
		I&apos;m not sure I&apos;d really have a need for the <code>enddeclare</code> syntax for any of these three settings anyway, though.
		Without that syntax (and without the curly brace syntax), declarations apply to the whole file, which is what I&apos;d typically want anyway.
		I can&apos;t think of a case in which I&apos;d want something else.
	</p>
</section>
		<hr/>
		<p>
			Copyright © 2017 Alex Yst;
			You may modify and/or redistribute this document under the terms of the <a rel="license" href="/license/gpl-3.0-standalone.xhtml"><abbr title="GNU&apos;s Not Unix">GNU</abbr> <abbr title="General Public License version Three or later">GPLv3+</abbr></a>.
			If for some reason you would prefer to modify and/or distribute this document under other free copyleft terms, please ask me via email.
			My address is in the source comments near the top of this document.
			This license also applies to embedded content such as images.
			For more information on that, see <a href="/en/a/licensing.xhtml">licensing</a>.
		</p>
		<p>
			<abbr title="World Wide Web Consortium">W3C</abbr> standards are important.
			This document conforms to the <a href="https://validator.w3.org./nu/?doc=https%3A%2F%2Fy.st.%2Fen%2Fweblog%2F2017%2F08-August%2F30.xhtml"><abbr title="Extensible Hypertext Markup Language">XHTML</abbr> 5.1</a> specification and uses style sheets that conform to the <a href="http://jigsaw.w3.org./css-validator/validator?uri=https%3A%2F%2Fy.st.%2Fen%2Fweblog%2F2017%2F08-August%2F30.xhtml"><abbr title="Cascading Style Sheets">CSS</abbr>3</a> specification.
		</p>
	</body>
</html>

